gh-109118: Allow lambdas in annotation scopes in classes#118019
gh-109118: Allow lambdas in annotation scopes in classes#118019JelleZijlstra merged 1 commit intopython:mainfrom
Conversation
carljm
left a comment
There was a problem hiding this comment.
Looks fine! I do think this will probably be the most intuitive behavior, though it's a little weird in principle for visibility to not be transitive. I guess it didn't turn out to be the case at all that this non-transitivity would require re-working abstractions in symtable.c!
I apologize in advance for the difficulties I assume you will encounter in making this work for comprehensions :/
|
Thanks! Yes, I tried locally to do the same thing for comprehensions and couldn't get it to work yet. The naive change (just remove the code that throws a SyntaxError for comprehensions in annotation scopes) no longer crashes like it did in #109118, but due to inlining it doesn't produce the right scoping semantics. I tried to do something like what we did last year in #104528 but couldn't get it to work yet. I haven't had time yet to get back to this. |
|
One approach I thought of was to simply not inline comprehensions in annotation scopes, but that doesn't seem right as comprehensions would now behave differently in annotation scopes versus elsewhere. |
|
If you want to (at some point when you get back to it, no rush) push a non-working version with inlined comprehensions in annotation scopes, I'm also willing to take a look and see what I can figure out. |
|
Thanks! I opened #118160 with what I have so far. |
📚 Documentation preview 📚: https://cpython-previews--118019.org.readthedocs.build/